<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>module Gem::Deprecate - rubygems: Ruby Standard Library Documentation</title>


<script src="../js/navigation.js" defer></script>
<script src="../js/search.js" defer></script>
<script src="../js/search_index.js" defer></script>
<script src="../js/searcher.js" defer></script>
<script src="../js/darkfish.js" defer></script>

<script src="../js/jquery-3.2.0.min.js"></script>

<script src="../js/vue.min.js"></script>
<script src="../js/js.cookie.min.js"></script>

<link href="../css/fonts.css" rel="stylesheet">
<link id='rdoccss' href="../css/rdoc.css" rel="stylesheet">
<link href="../css/carbon17.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../";
  var index_rel_prefix = "../";
  var darkModeCsseHref = "../css/rdoc-dm.css"
  var defaultModeCssHref = "../css/rdoc.css"
  // var cssDarkmode = Cookies.get('darkmode');
  
  if( Cookies.get("darkmode") == "true") {
	$('#rdoccss').attr("href", darkModeCsseHref);
}

//  https://cssdeck.com/blog/simple-jquery-stylesheet-switcher/

document.write('<style type="text/css">body{display:none}</style>');

</script>


</head>
<body id="top" role="document" class="module">
  <!-- this is class.html -->

  <div id='actionbar' >
    <div class='wrapper mdiv'>
      <ul class='grids g0'></ul>
    </div> 
    <!-- VERSION HEADER for 3.3.0.preview2 NOT FOUND -->
  </div> <!-- end action bar -->

  <div class='wrapper hdiv'>

    


    <nav id='vapp' role="navigation">
    <div id="project-navigation">
      <div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2><a href="../index.html" rel="home">Home</a></h2>

  <div id="table-of-contents-navigation"  >
    <a href="../table_of_contents.html#pages">Pages</a>
    <a href="../table_of_contents.html#classes">Classes</a>
    <a href="../table_of_contents.html#methods">Methods</a>
  </div>
</div>

      <div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>

    </div>


    

    <button id='toggleThing' @click="toggleNav()" >Show/hide navigation</button>
    <div :class="isOpen ? 'block' : 'hidden' " id='toggleMe'>
      <div id="class-metadata">
        
        
        
        
        
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
  <h3>Methods</h3>

  <ul class="link-list" role="directory">
    <li ><a href="#method-c-rubygems_deprecate">::rubygems_deprecate</a>
    <li ><a href="#method-c-rubygems_deprecate_command">::rubygems_deprecate_command</a>
    <li ><a href="#method-c-skip_during">::skip_during</a>
    <li ><a href="#method-i-deprecate">#deprecate</a>
    <li ><a href="#method-i-rubygems_deprecate">#rubygems_deprecate</a>
    <li ><a href="#method-i-rubygems_deprecate_command">#rubygems_deprecate_command</a>
    <li ><a href="#method-i-skip_during">#skip_during</a>
  </ul>
</div>

      </div>
     </div>
    </nav>


    <div id='extraz'><div class='adzbox-index'  >
      
     </div>         
    </div>

    <main role="main" aria-labelledby="module-Gem::Deprecate">
    <h1 id="module-Gem::Deprecate" class="module">
      module Gem::Deprecate
    </h1>

    <section class="description">
    
<p>Provides 3 methods for declaring when something is going away.</p>

<p>+deprecate(name, repl, year, month)+:</p>

<pre>Indicate something may be removed on/after a certain date.</pre>

<p>+rubygems_deprecate(name, replacement=:none)+:</p>

<pre>Indicate something will be removed in the next major RubyGems version,
and (optionally) a replacement for it.</pre>

<p><code>rubygems_deprecate_command</code>:</p>

<pre>Indicate a RubyGems command (in +lib/rubygems/commands/*.rb+) will be
removed in the next RubyGems version.</pre>

<p>Also provides <code>skip_during</code> for temporarily turning off deprecation warnings. This is intended to be used in the test suite, so deprecation warnings don’t cause test failures if you need to make sure stderr is otherwise empty.</p>

<p>Example usage of <code>deprecate</code> and <code>rubygems_deprecate</code>:</p>

<pre class="ruby"><span class="ruby-keyword">class</span> <span class="ruby-constant">Legacy</span>
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier ruby-title">some_class_method</span>
    <span class="ruby-comment"># ...</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">some_instance_method</span>
    <span class="ruby-comment"># ...</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">some_old_method</span>
    <span class="ruby-comment"># ...</span>
  <span class="ruby-keyword">end</span>

  <span class="ruby-identifier">extend</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>
  <span class="ruby-identifier">deprecate</span> <span class="ruby-value">:some_instance_method</span>, <span class="ruby-string">&quot;X.z&quot;</span>, <span class="ruby-value">2011</span>, <span class="ruby-value">4</span>
  <span class="ruby-identifier">rubygems_deprecate</span> <span class="ruby-value">:some_old_method</span>, <span class="ruby-string">&quot;Modern#some_new_method&quot;</span>

  <span class="ruby-keyword">class</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-keyword">self</span>
    <span class="ruby-identifier">extend</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>
    <span class="ruby-identifier">deprecate</span> <span class="ruby-value">:some_class_method</span>, <span class="ruby-value">:none</span>, <span class="ruby-value">2011</span>, <span class="ruby-value">4</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
</pre>

<p>Example usage of <code>rubygems_deprecate_command</code>:</p>

<pre class="ruby"><span class="ruby-keyword">class</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Commands</span><span class="ruby-operator">::</span><span class="ruby-constant">QueryCommand</span> <span class="ruby-operator">&lt;</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Command</span>
  <span class="ruby-identifier">extend</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>
  <span class="ruby-identifier">rubygems_deprecate_command</span>

  <span class="ruby-comment"># ...</span>
<span class="ruby-keyword">end</span>
</pre>

<p>Example usage of <code>skip_during</code>:</p>

<pre class="ruby"><span class="ruby-keyword">class</span> <span class="ruby-constant">TestSomething</span> <span class="ruby-operator">&lt;</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Testcase</span>
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">test_some_thing_with_deprecations</span>
    <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip_during</span> <span class="ruby-keyword">do</span>
      <span class="ruby-identifier">actual_stdout</span>, <span class="ruby-identifier">actual_stderr</span> = <span class="ruby-identifier">capture_output</span> <span class="ruby-keyword">do</span>
        <span class="ruby-constant">Gem</span>.<span class="ruby-identifier">something_deprecated</span>
      <span class="ruby-keyword">end</span>
      <span class="ruby-identifier">assert_empty</span> <span class="ruby-identifier">actual_stdout</span>
      <span class="ruby-identifier">assert_equal</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual_stderr</span>)
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span>
</pre>

    </section>

      <section id="5Buntitled-5D" class="documentation-section">





                <section id="public-class-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Class Methods</h3>
                </header>

                  <div id="method-c-rubygems_deprecate" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">rubygems_deprecate</span><span
                                class="method-args">(name, replacement=:none)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Simple deprecation method that deprecates <code>name</code> by wrapping it up in a dummy method. It warns on each call to the dummy method telling the user of <code>repl</code> (unless <code>repl</code> is :none) and the Rubygems version that it is planned to go away.</p>

                              <div class="method-source-code" id="rubygems_deprecate-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 128</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">rubygems_deprecate</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">replacement</span>=<span class="ruby-value">:none</span>)
  <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword">do</span>
    <span class="ruby-identifier">old</span> = <span class="ruby-node">&quot;_deprecated_#{name}&quot;</span>
    <span class="ruby-identifier">alias_method</span> <span class="ruby-identifier">old</span>, <span class="ruby-identifier">name</span>
    <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
      <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Module</span>
      <span class="ruby-identifier">target</span> = <span class="ruby-identifier">klass</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{self}.&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;#{self.class}#&quot;</span>
      <span class="ruby-identifier">msg</span> = [
        <span class="ruby-node">&quot;NOTE: #{target}#{name} is deprecated&quot;</span>,
        <span class="ruby-identifier">replacement</span> <span class="ruby-operator">==</span> <span class="ruby-value">:none</span> <span class="ruby-operator">?</span> <span class="ruby-string">&quot; with no replacement&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;; use #{replacement} instead&quot;</span>,
        <span class="ruby-node">&quot;. It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}&quot;</span>,
        <span class="ruby-node">&quot;\n#{target}#{name} called from #{Gem.location_of_caller.join(&quot;:&quot;)}&quot;</span>,
      ]
      <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;#{msg.join}.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
      <span class="ruby-identifier">send</span> <span class="ruby-identifier">old</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
    <span class="ruby-keyword">end</span>
    <span class="ruby-identifier">ruby2_keywords</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:ruby2_keywords</span>, <span class="ruby-keyword">true</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-c-rubygems_deprecate_command" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">rubygems_deprecate_command</span><span
                                class="method-args">(version = Gem::Deprecate.next_rubygems_major_version)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Deprecation method to deprecate Rubygems commands</p>

                              <div class="method-source-code" id="rubygems_deprecate_command-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 149</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">rubygems_deprecate_command</span>(<span class="ruby-identifier">version</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">next_rubygems_major_version</span>)
  <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword">do</span>
    <span class="ruby-identifier">define_method</span> <span class="ruby-string">&quot;deprecated?&quot;</span> <span class="ruby-keyword">do</span>
      <span class="ruby-keyword">true</span>
    <span class="ruby-keyword">end</span>

    <span class="ruby-identifier">define_method</span> <span class="ruby-string">&quot;deprecation_warning&quot;</span> <span class="ruby-keyword">do</span>
      <span class="ruby-identifier">msg</span> = [
        <span class="ruby-node">&quot;#{command} command is deprecated&quot;</span>,
        <span class="ruby-node">&quot;. It will be removed in Rubygems #{version}.\n&quot;</span>,
      ]

      <span class="ruby-identifier">alert_warning</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">join</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-c-skip_during" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">skip_during</span><span
                                class="method-args">() { || ... }</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Temporarily turn off warnings. Intended for tests only.</p>

                              <div class="method-source-code" id="skip_during-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 84</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">skip_during</span>
  <span class="ruby-identifier">original</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
  <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span> = <span class="ruby-keyword">true</span>
  <span class="ruby-keyword">yield</span>
<span class="ruby-keyword">ensure</span>
  <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span> = <span class="ruby-identifier">original</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Instance Methods</h3>
                </header>

                  <div id="method-i-deprecate" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">deprecate</span><span
                                class="method-args">(name, repl, year, month)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Simple deprecation method that deprecates <code>name</code> by wrapping it up in a dummy method. It warns on each call to the dummy method telling the user of <code>repl</code> (unless <code>repl</code> is :none) and the year/month that it is planned to go away.</p>

                              <div class="method-source-code" id="deprecate-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 102</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deprecate</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">repl</span>, <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>)
  <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword">do</span>
    <span class="ruby-identifier">old</span> = <span class="ruby-node">&quot;_deprecated_#{name}&quot;</span>
    <span class="ruby-identifier">alias_method</span> <span class="ruby-identifier">old</span>, <span class="ruby-identifier">name</span>
    <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
      <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Module</span>
      <span class="ruby-identifier">target</span> = <span class="ruby-identifier">klass</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{self}.&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;#{self.class}#&quot;</span>
      <span class="ruby-identifier">msg</span> = [
        <span class="ruby-node">&quot;NOTE: #{target}#{name} is deprecated&quot;</span>,
        <span class="ruby-identifier">repl</span> <span class="ruby-operator">==</span> <span class="ruby-value">:none</span> <span class="ruby-operator">?</span> <span class="ruby-string">&quot; with no replacement&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;; use #{repl} instead&quot;</span>,
        <span class="ruby-identifier">format</span>(<span class="ruby-string">&quot;. It will be removed on or after %4d-%02d.&quot;</span>, <span class="ruby-identifier">year</span>, <span class="ruby-identifier">month</span>),
        <span class="ruby-node">&quot;\n#{target}#{name} called from #{Gem.location_of_caller.join(&quot;:&quot;)}&quot;</span>,
      ]
      <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;#{msg.join}.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
      <span class="ruby-identifier">send</span> <span class="ruby-identifier">old</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
    <span class="ruby-keyword">end</span>
    <span class="ruby-identifier">ruby2_keywords</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:ruby2_keywords</span>, <span class="ruby-keyword">true</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

                <section id="private-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Private Instance Methods</h3>
                </header>

                  <div id="method-i-rubygems_deprecate" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">rubygems_deprecate</span><span
                                class="method-args">(name, replacement=:none)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Simple deprecation method that deprecates <code>name</code> by wrapping it up in a dummy method. It warns on each call to the dummy method telling the user of <code>repl</code> (unless <code>repl</code> is :none) and the Rubygems version that it is planned to go away.</p>

                              <div class="method-source-code" id="rubygems_deprecate-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 128</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">rubygems_deprecate</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">replacement</span>=<span class="ruby-value">:none</span>)
  <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword">do</span>
    <span class="ruby-identifier">old</span> = <span class="ruby-node">&quot;_deprecated_#{name}&quot;</span>
    <span class="ruby-identifier">alias_method</span> <span class="ruby-identifier">old</span>, <span class="ruby-identifier">name</span>
    <span class="ruby-identifier">define_method</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span><span class="ruby-operator">|</span>
      <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Module</span>
      <span class="ruby-identifier">target</span> = <span class="ruby-identifier">klass</span> <span class="ruby-operator">?</span> <span class="ruby-node">&quot;#{self}.&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;#{self.class}#&quot;</span>
      <span class="ruby-identifier">msg</span> = [
        <span class="ruby-node">&quot;NOTE: #{target}#{name} is deprecated&quot;</span>,
        <span class="ruby-identifier">replacement</span> <span class="ruby-operator">==</span> <span class="ruby-value">:none</span> <span class="ruby-operator">?</span> <span class="ruby-string">&quot; with no replacement&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-node">&quot;; use #{replacement} instead&quot;</span>,
        <span class="ruby-node">&quot;. It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}&quot;</span>,
        <span class="ruby-node">&quot;\n#{target}#{name} called from #{Gem.location_of_caller.join(&quot;:&quot;)}&quot;</span>,
      ]
      <span class="ruby-identifier">warn</span> <span class="ruby-node">&quot;#{msg.join}.&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
      <span class="ruby-identifier">send</span> <span class="ruby-identifier">old</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>
    <span class="ruby-keyword">end</span>
    <span class="ruby-identifier">ruby2_keywords</span> <span class="ruby-identifier">name</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:ruby2_keywords</span>, <span class="ruby-keyword">true</span>)
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-rubygems_deprecate_command" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">rubygems_deprecate_command</span><span
                                class="method-args">(version = Gem::Deprecate.next_rubygems_major_version)</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Deprecation method to deprecate Rubygems commands</p>

                              <div class="method-source-code" id="rubygems_deprecate_command-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 149</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">rubygems_deprecate_command</span>(<span class="ruby-identifier">version</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">next_rubygems_major_version</span>)
  <span class="ruby-identifier">class_eval</span> <span class="ruby-keyword">do</span>
    <span class="ruby-identifier">define_method</span> <span class="ruby-string">&quot;deprecated?&quot;</span> <span class="ruby-keyword">do</span>
      <span class="ruby-keyword">true</span>
    <span class="ruby-keyword">end</span>

    <span class="ruby-identifier">define_method</span> <span class="ruby-string">&quot;deprecation_warning&quot;</span> <span class="ruby-keyword">do</span>
      <span class="ruby-identifier">msg</span> = [
        <span class="ruby-node">&quot;#{command} command is deprecated&quot;</span>,
        <span class="ruby-node">&quot;. It will be removed in Rubygems #{version}.\n&quot;</span>,
      ]

      <span class="ruby-identifier">alert_warning</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">join</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
    <span class="ruby-keyword">end</span>
  <span class="ruby-keyword">end</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-skip_during" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">skip_during</span><span
                                class="method-args">() { || ... }</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Temporarily turn off warnings. Intended for tests only.</p>

                              <div class="method-source-code" id="skip_during-source">
            <pre><span class="ruby-comment"># File rubygems/deprecate.rb, line 84</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">skip_during</span>
  <span class="ruby-identifier">original</span> = <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span>
  <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span> = <span class="ruby-keyword">true</span>
  <span class="ruby-keyword">yield</span>
<span class="ruby-keyword">ensure</span>
  <span class="ruby-constant">Gem</span><span class="ruby-operator">::</span><span class="ruby-constant">Deprecate</span>.<span class="ruby-identifier">skip</span> = <span class="ruby-identifier">original</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

              </section>
              </main>



            </div>  <!--  class='wrapper hdiv' -->


<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a></p>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.</p>
<p>Based on <a href="https://github.com/ged/darkfish/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.</p>

  
    <p><p><a href="https://ruby-doc.org">Ruby-doc.org</a> is provided by <a href="https://jamesbritt.com">James Britt</a> and <a href="https://neurogami.com">Neurogami</a>.</p><p><a href="https://jamesbritt.bandcamp.com/">Maximum R+D</a>.  </p>
</p>
  
  </footer>

<script type="text/javascript">


  let ads  = $("#carbonads-container").children().detach();


  function swapMode() {
    var cookieName = 'darkmode';
    var cssDarkmode = Cookies.get(cookieName);
    console.log("***** swapMode! " + cssDarkmode + " *****");


    if (cssDarkmode == "true") {
      console.log("We have dark mode, set the css to light ...");
      $('#rdoccss').attr("href", defaultModeCssHref);
      $('#cssSelect').text("Dark mode");
      cssDarkmode = "false";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    } else {
      console.log("We not have dark mode, set the css to dark ...");
      $('#rdoccss').attr("href", darkModeCsseHref);
      $('#cssSelect').text("Light mode");
      cssDarkmode = "true";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    }

    console.log("  --------------- ");
  }


const vueCssApp = new Vue({
el: '#menubar',
data: {
isDark: false
},
methods: {
toggleClass: function(event){
this.isDark = !this.isDark;
}
}
})

const vueApp = new Vue({
el: '#vapp',
data: { 
isOpen: true
},

mounted() {
this.handleResize();
this.manage_mob_classes();
window.addEventListener('resize', this.handleResize)
//this.isOpen !=  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},
destroyed() {
window.removeEventListener('resize', this.handleResize)
},
created() {
//manage_mob_classes();
},

methods : {
isMobile() {
  return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},

  handleResize() {
    if (!this.isMobile()) {
      this.isOpen = window.innerWidth > 800;
    }
  },

  manage_mob_classes() {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
      $("nav").addClass("mob_nav");
      $("main").addClass("mob_main");
      $("#extraz").addClass("mob_extraz");
      $("#carbonads-container").addClass("mob_carbonads-container");
      this.isOpen  = false;
    } else {
      $("nav").removeClass("mob_nav") 
        $("main").removeClass("mob_main");
      $("#extraz").removeClass("mob_extraz");
      $("#carbonads-container").removeClass("mob_carbonads-container");
      this.isOpen  = true;
    }
  },

  toggleNav() {
    this.isOpen =! this.isOpen ;
    // alert("Toggle nav!");
    console.log("toggleNav() click: " + this.isOpen );
  }
}
})

$("#carbonads-container").append(ads);


$(function() {

    var darkmode = Cookies.get("darkmode");
    console.log("Document ready: " + darkmode);

    if ( darkmode  == "true" ) {
      $('#cssSelect').text("Light mode");
    } else {
      $('#cssSelect').text("Dark mode");
     }

    $('body').css('display','block');
    });

</script>

    
  </body> 
</html>

